const ffi = require('ffi-napi')
const ref = require('ref-napi')
const path = require('path')

console.log(process.platform)
if (process.platform === 'darwin') {
  exports.Dcrf32 = {}
} else {
  var charPtr = ref.refType('char')
  var intPointer = ref.refType('int')

  var url = ''
  url = path.join(__static, '/dll/dcrf32')
  if (process.env.NODE_ENV === 'production') {
    url = path.join(__dirname, '../../../dist/electron/static/dll/dcrf32')
  }
  exports.Dcrf32 = ffi.Library(url, {
    'dc_init': ['int', ['int', 'int']],
    'dc_getname': ['void', ['int', charPtr]],
    'dc_beep': ['void', ['int', 'int']],
    'dc_reset': ['int', ['int', 'int']],
    'dc_config_card': ['void', ['int', 'string']],
    'dc_card_n': ['int', ['int', 'int', intPointer, charPtr]],
    'dc_pro_resetInt': ['int', ['int', intPointer, charPtr]],
    'hex_a': ['int', [charPtr, charPtr, 'int']],
    'dc_pro_commandlinkInt': ['int', ['int', 'int', charPtr, intPointer, charPtr, 'int']],
    'dc_des': ['int', [charPtr, charPtr, charPtr, 'int']],
    'dc_tripledes': ['int', [charPtr, charPtr, charPtr, 'int']],
    'dc_exit': ['int', ['int']],
    'dc_card': ['int', ['int', 'int', charPtr]],
    'dc_read': ['int', ['int', 'int', charPtr]],
    'dc_read_hex': ['int', ['int', 'int', charPtr]],
    'dc_write': ['int', ['int', 'int', charPtr]],
    'dc_write_hex': ['int', ['int', 'int', charPtr]],
    'dc_authentication_passaddr_hex': ['int', ['int', 'int', 'int', charPtr]],
    'a_hex': ['int', [charPtr, charPtr, 'int']]
  })
}
